Location services are becoming a more common part of common computing devices. Global positioning system (GPS) chips first became common in dedicated devices for providing directions, but are becoming more and more common in mobile phones, portable gaming devices, and laptop computers. Computer software is beginning to use a device's current location to provide a variety of services, such as local listings (e.g., for restaurants or other services), directions, weather information, and so forth. Some operating systems have been updated to include location services application programming interfaces (APIs) that software applications can invoke to get location information in a consistent way (e.g., without modifications for different hardware types).
Location information may be determined using GPS hardware, cellular tower triangulation, Wi-Fi hotspot signal strength (compared with a known hotspot database), and so forth. The variety of devices a user may carry that are capable of detecting location data is increasing, such as mobile phones, tablets, laptop computers, gaming devices, and so forth. Each of these devices often includes a proprietary way of gathering location data and provides data for use on the device only. Some services send proprietary information to determine, for example, where a user's friends are located. Cloud-based services, such as MICROSOFT™ AZURE™ do not currently have any way to capture location data because they are dependent on information (not) provided by individual user devices.
Developers do not have an easy way to provide location-aware data from devices, applications, or automotive vehicles to a cloud service or remote storage in a way that provides easy capabilities to visualize, analyze, and predict behavior. Everything today is custom made in terms of services and is not productive to the average developer who wants to simply provide, for example, latitude and longitude information related to a user to enable second-level interactions. Thus, anyone that wants to build such applications performs redundant development effort to create infrastructure that works only for their solution. Furthermore, such developers do not have a repository that allows big data and machine learning to take advantage of this data to answer interesting questions on patterns.